//定义接口（逗号、分号都可以结尾，甚至不要符号也行）
interface Person{
    name: string,
    age: number,  // 必选属性
    job?: string; //可选属性，表示不是必须的参数，
    readonly salary: number  //表示是只读的属性,但是在初始化之后不能重新赋值，否则会报错
    [ propName : string ] : any,  // 任意类型
    get(x:number): number
    get(x:string): string
}
//定义一个变量，它的类型时接口Person，这样就约束了接口的内容
let person: Person = {
    name: 'jack',
    age: 28,
    job: 'IT dog',
    id: 9872,
    salary: 9999,
    get(x: any){let y= x+2; console.log(y); return y}
}

function printMan(person: Person) {
    console.log( `我是 ${person.name}, 我今年 ${person.age}, 我的工作是${person.job}`);
    person.get('a')
}

printMan(person);
